Devices, such as constrained devices, sensors and actuators, deployed as a network of nodes have become useful for collecting and/or process data in applications such as ambient intelligence, smart environments, and autonomous control. For example, networked sensors may be deployed in a building to measure the temperature and humidity such that an air conditioning system for the building may be adjusted autonomously. These networked devices are generally referred to as constrained nodes or constrained devices in a (constrained) network, and each constrained node generally has at least one resource such as temperature or humidity. The nodes may be accessible, e.g., in an Internet-like network, where each device is a uniquely identifiable node, and the nodes act as servers to which clients can connect. Such a system of nodes may be referred to colloquially as “Internet of Things”. The nodes may be in a wired network and/or a wireless network. In some situations, these nodes are constrained nodes or constrained devices, having limited power and computing resources. The network that connects these nodes may be referred to as low power and lossy networks (LLNs). Typically, each of the nodes has at least one resource. A resource may be associated with a state of the node and/or information associated with the node, or with an action that can be executed on the device. Examples of resources include: “/temperature”, “/humidity”, “/room_location”, “/picture”, “/light_control”, etc. Clients may query the node for the resource at the node.
Depending on the application, information from individual nodes might not be sufficient, reliable, or useful. An application may need to aggregate and/or compare data from a plurality of nodes. In some cases, an application may need to perform an operation on a plurality of nodes using a single request. Although multicast may be used to transmit the same request to a plurality of nodes, multicast communication in LLNs has some disadvantages. For instance, it is difficult to avoid duplication of messages, and duplication is undesirable in an LLN where bandwidth is limited for these constrained nodes. Furthermore, multicast is not reliable in an LLN, which is problematic for requests that require guaranteed delivery. Also, the creation of multicast groups, defining which nodes should be addressed when using a particular multicast address, is hard to realize in LLNs.
Some unicast-based features have been introduced to alleviate some of the problems above, but the features are insufficient. According to a July 2012 Internet draft description of the Constrained RESTful Environments (CoRE) interfaces, a client may utilize the Linked Batch interface and Bindings. Linked Batch Interface allows a client to manipulate multiple resources at a single node with one client request, and Bindings allows a client to synchronize multiple resources across a plurality of nodes. However, the draft does not provide a unicast-based way to manipulate multiple resources of a plurality of nodes with a single request.
To overcome this problem, (user) applications running on clients have added intelligence and programming to access each node individually to aggregate and/or compare data from a plurality of nodes. This leads to more complex (user) applications, and the added intelligence and programming cannot be shared with other applications easily. Furthermore, complex user applications may be unwieldy. Any modifications to those complex user applications may require significant testing time, thus limiting the flexibility of the user applications. Additionally, a large overhead of communications between the client and the nodes is generated, especially if many nodes are involved. Costs may become large if the communications are performed over costly links. When the communications between the client and the nodes are performed across the Internet, delays may be unpredictable and a sequence of operations/commands to the nodes may arrive out of order and possible lead to undesirable results.